export default {
  namespaced: true,
  state: {
    username: '张三',
    name: 'getters姓名:'
  },
  mutations: {
    SETUSERNAME (state, value) {
      state.username = value
      // localStorage.setItem('username', value)
    }
  },
  actions: {
    updateUsername (ctx, value) {
      // state:当前模块的state
      // getters:当前模块的getters
      // rootState:根模块下的state(它能拿到所有模块的state)
      // rootGetters:根模块下的getters(它能拿到所有模块的getters)
      // commit :调用mutations方法
      //    调用当前模块的mutations:  ctx.commit('mutations方法名', 实参)
      //    调用根模块/其它模块的mutations: ctx.commit('模块名/mutations方法名', 实参,{root:true})
      // dispatch:调用actions方法
      //    调用当前模块的action:  ctx.dispatch('action方法名', 实参)
      //    调用根模块/其它模块的action: ctx.dispatch('模块名/action方法名', 实参,{root:true})
      // ctx.commit('home/SETUSERNAME', '首页', { root: true })
      // ctx.dispatch('userTest')
      ctx.dispatch('home/updateTitle', '首页', { root: true })
      console.log('ctx', ctx)
      setTimeout(() => {
        ctx.commit('SETUSERNAME', value)
      }, 2000)
    },
    userTest () {
      console.log('userTest')
    }
  },
  getters: {
    //
    getUsername (state, getters, rootState, rootGetters) {
      // state:当前模块的state
      // getters:当前模块的getters
      // rootState:根模块下的state(它能拿到所有模块的state)
      // rootGetters:根模块下的getters(它能拿到所有模块的getters)
      return (
        getters.getXxx +
        state.username +
        '------' +
        rootState.rootName +
        '------' +
        rootState.home.title +
        '--------' +
        rootGetters.getName +
        '-----------' +
        rootGetters['home/getUsername']
      )
    },
    getXxx (state) {
      return state.name
    }
  }
}
